import org.junit.Test;

import java.util.Calendar;
import java.util.Date;

/**
 * @description:日期和时间的测试
 * @author:Mr.Cat
 * @create:2021-09-28 20:33
 **/
public class DateTimeTest {

    //JDK8之前日期和时间的API测试
    //System类中的currentTimeMillis();单位毫秒
    @Test
    public void Test1(){
        //返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
        //称为时间戳
        long time=System.currentTimeMillis();

        System.out.println(time);
    }

    /**
     * java.util.Date类
     *      |---java.sql.Date类
     * 1、两个构造器的使用
     *        //构造器一：Date（）：创建一个对应当前时间的Date对象
     *        //构造器二：创建指定毫秒数的Date对象
     * 2、两个方法的使用
     *      >toString（）：显式当前的年、月、日、时、分、秒
     *      >gettime():获取当前Date对象对应的毫秒数。（时间戳）
     * 3、java.sql.Date对应着数据库中的日期类型的变量
     *      >如何实例化
     *      >如何将java.util.Date--->sql.Date对象
     */
    @Test
    public void test2(){
        //构造器一：Date（）：创建一个对应当前时间的Date对象
        Date date = new Date();
        System.out.println(date.toString());
        System.out.println(date.getTime());

        //构造器二：创建指定毫秒数的Date对象
        Date date1 =new Date(155115513313L);
        System.out.println(date1.toString());

        //>如何实例化
        java.sql.Date date2 = new java.sql.Date(1234554645L);
        System.out.println(date2);

        // >如何将java.util.Date--->sql.Date对象
        //情况一：
        Date date3=new java.sql.Date(312313313L);
        java.sql.Date date4=(java.sql.Date)date3;
        //情况二：
        Date date5= new Date();
        java.sql.Date date6=new java.sql.Date(date5.getTime());
    }
    @Test
    public void testCalendar(){
        //1、实例化
        //方式一、创建其子类（GregorianCalendar）的对象
        //方式二、调用其静态方法getInstance()
        Calendar calendar = Calendar.getInstance();
//        System.out.println(calendar.getClass());
        //2、常用方法
        //get()
        int days=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(days);
        System.out.println(calendar.get(Calendar.MONTH));
        //一月是0，二月是1，三月是2以此类推
        //星期日是1，星期一是2……星期六是七
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));

        //set()
        calendar.set(Calendar.DAY_OF_MONTH,22);
        days=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(days);

        //add()
        calendar.add(Calendar.DAY_OF_MONTH,-3);
        days=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(days);

        //getTime()
        Date date = calendar.getTime();
        System.out.println(days);

        //setTime()
        Date date1 = new Date();
        calendar.setTime(date1);
        days=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(days);
    }
}

